---
title: "Idiomatic Rust 風格"
description: "學習 Rust 的慣用寫法、社群最佳實踐和編碼哲學，編寫更符合 Rust 風格的程式碼"
---

# Idiomatic Rust 風格

## 📖 學習目標

本模組將引導你深入理解 Rust 的「慣用」風格，學習社群推崇的最佳實踐和編碼哲學，幫助你編寫出更符合 Rust 特性、更易讀、更高效的程式碼。

---

## 🎯 什麼是 Idiomatic Rust？

### 1. Rustacean 編碼哲學

- **沒有垃圾收集器的記憶體安全**: 擁抱所有權和借用系統。
- **零成本抽象**: 使用高階抽象而沒有效能損失。
- **顯式優於隱式**: 傾向於顯式行為。

### 2. 擁抱所有權系統

- 在可能的情況下，優先選擇借用而不是所有權。
- 明智地使用 `clone()`。
- 理解 `String` 和 `&str` 之間的區別。

### 3. 零成本抽象

- 使用迭代器和閉包進行高效的資料處理。
- 利用特徵實現多態。

### 4. 錯誤處理哲學

- 對可恢復的錯誤使用 `Result`，對不可恢復的錯誤使用 `panic!`。
- 避免在函式庫程式碼中使用 `unwrap()` 和 `expect()`。

---

## 📝 編碼規範與最佳實踐

### 1. 命名規範

- 對變數和函式使用 `snake_case`。
- 對型別使用 `PascalCase`。
- 對常數使用 `SCREAMING_SNAKE_CASE`。

### 2. 程式碼格式化

- 使用 `rustfmt` 自動格式化你的程式碼。

### 3. 註釋與文件

- 對文件註釋使用 `///`。
- 對常規註釋使用 `//`。
- 為公共 API 編寫清晰簡潔的文件。

### 4. 錯誤處理模式

- 使用 `?` 操作符進行錯誤傳播。
- 為你的函式庫定義自訂錯誤型別。

### 5. 並發與異步模式

- 使用通道進行執行緒間通訊。
- 使用 `Arc<Mutex<T>>` 實現共享狀態。

### 6. 特徵與泛型使用

- 使用特徵定義共享行為。
- 使用泛型編寫可重用程式碼。

---

## 🛠️ 常用工具與庫

### 1. `clippy`

一系列用於捕捉常見錯誤和改進你的 Rust 程式碼的 lint。

### 2. `rustfmt`

一個根據官方風格指南格式化 Rust 程式碼的工具。

### 3. `rustdoc`

一個從你的原始碼產生文件的工具。

### 4. 常用 crates

- `serde` 用於序列化和反序列化。
- `tokio` 用於異步程式設計。
- `clap` 用於命令列參數解析。

---

## 📝 總結

本模組介紹了 idiomatic Rust 的概念，並提供了一套最佳實踐和工具來幫助你編寫更好的 Rust 程式碼。透過遵循這些指南，你不僅可以編寫出正確的程式碼，還可以使其易於閱讀、維護和高效。

---

**學習完成**: 恭喜你完成了 JavaScript 到 Rust 的學習之旅！
